package com.px.jni;

public class interfaceDDS {

    /**
     * 初始化域工厂。
     *
     * @param pConfigPath     .ini配置文件路径。
     * @return DomainFactory句柄。
     */
    public native long DE_DDS_InitDomainFactory(String pConfigPath);

    /**
     * 创建域。
     *
     * @param pDomainFactory    底层DomainFactory句柄。
     * @param pDomainID         域ID。
     * @return Domain句柄。
     */
    public native long DE_DDS_CreateDomain(long pDomainFactory, int pDomainID);

    /**
     * 注册主题。
     *
     * @param pDomain       底层Domain句柄。
     * @param pTopicName    主题。
     * @return 。
     */
    public native boolean DE_DDS_CreateTopic(long pDomain, String pTopicName);

    /**
     * 创建发布。
     *
     * @param pDomain   底层Domain句柄。
     * @return 发布句柄
     */
    public native int DE_DDS_CreatePublisher(long pDomain);

    /**
     * 创建写入器。
     *
     * @param pDomain       底层Domain句柄。
     * @param pHandle       发布句柄。
     * @param pTopicName    主题。
     * @return 。
     */
    public native boolean DE_DDS_CreateDataWriter(long pDomain, int pHandle, String pTopicName);

    /**
     * 发送信息。
     *
     * @param pDomain       底层Domain句柄。
     * @param pHandle       发布句柄。
     * @param pTopicName    主题。
     * @param pMessage      内容。
     * @return 。
     */
    public native boolean DE_DDS_SendMessage(long pDomain, int pHandle, String pTopicName, String pMessage);

    /**
     * 发送信息。
     *
     * @param pDomain       底层Domain句柄。
     * @param pHandle       发布句柄。
     * @param pTopicName    主题。
     * @param isDuration    是否堵塞。
     * @param timeout       堵塞时长。
     * @return 。
     */
    public native boolean DE_DDS_SetDurationAndTimeout(long pDomain, int pHandle, String pTopicName, boolean isDuration, int timeout);

    /**
     * 创建订阅。
     *
     * @param pDomain   底层Domain句柄。
     * @return 订阅句柄
     */
    public native int DE_DDS_CreateSubscriber(long pDomain);

    /**
     * 创建读取器。
     *
     * @param pDomain       底层Domain句柄。
     * @param sHandle       订阅句柄
     * @param pTopicName    主题
     */
    public native boolean DE_DDS_CreateDataReader(long pDomain, int sHandle, String pTopicName);

    /**
     * 回调函数，在这个接口扩展分发数据
     *
     * @param pMessage    接收信息
     */
    public void ReceiveMessageCallback(String pMessage)
    {
        System.out.println("ReceiveMessage:"+pMessage);


    }

}
